//*** Guidance generated code ***//
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

using ProjectBase.Core;

namespace $safeprojectname$
{
    /// <summary>
    /// Entity BusinessObject.
    /// </summary>
    [Serializable]
    public abstract class BusinessObject : Persistent<int>, IBusinessObject
    {
        #region members

        private IDictionary _additional;

        #endregion members

        #region Additional

        public virtual IDictionary Additional
        {
            get { return _additional ?? (_additional = new Hashtable()); }
            set { _additional = value; }
        }

        #endregion Additional

        // IAuditable
        public virtual DateTime? DateCreated { get; set; }
        public virtual DateTime? DateModified { get; set; }
        public virtual int CreatedById { get; set; }
        public virtual int ModifiedById { get; set; }

        // IHaveActiveMode
        public virtual bool IsActive { get; set; }

        // IHaveCountry
        public virtual string CountryCode { get; set; }

        // BOT
        public abstract BusinessObjectTypes BusinessObjectType { get; }
    }
}